home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Experimental BBS Explossion 3
/
Experimental BBS Explossion III.iso
/
games
/
nhak_src.zip
/
MAKEFILE.OVL
< prev
next >
Wrap
Text File
|
1993-03-16
|
25KB
|
675 lines
# SCCS Id: @(#)Makefile.ovl 3.0 90/06/03
# PC NetHack 3.0 Makefile for Microsoft(tm) "C" 5.1 -- Pierre Martineau
# Overlay Arrangement -- Stephen Spackman, Pierre Martineau, Norm Meluch
# Multiple Compilation Hack and so forth -- Stephen Spackman
# Additional editing -- Kevin Smolkowski
#
# Other things that have to be reconfigured are in config.h, pcconf.h,
# and possibly system.h.
#
# Nota Bene: OVERLAY *must* be defined in pcconf.h to use this makefile!
# Also: Rename this file to "makefile", some targets rely on it.
# -----------------------------------------------------------------------------
# In addition to your C compiler,
#
# if you want to change you will need a
# files with suffix workalike for
# .y yacc
# .l lex
# .asm masm
# -----------------------------------------------------------------------------
# As it is set up, this makefile requires that exesmurf (the
# NetHack overlay-aware .exe header editor) be on your path or in the
# $(SRC) directory. If you wish to change the path or use Microsoft
# EXEMOD instead, see the symbols EXEPATCH and EXEFLAGS.
#
# *****************************************************************************
# ************************ Compiler Info **************************************
# *****************************************************************************
CC = cl /c
LINK = link
MODEL = L
ASM = masm
EXEPATCH = exesmurf
# $(MAKE) macro is often predefined, so we use $(MAKEBIN) instead.
MAKEBIN = make
# For those of us who have these on PC.
# YACC = yacc
# LEX = lex
YACC = bison -y
LEX = flex
# Standard file names may vary in PC installations.
YTABC = y_tab.c
YTABH = y_tab.h
LEXYYC = lexyy.c
# Register bug, remove stack probes...
# /Gt22 is currently about the largest value that keeps the initialised data
# segment below 64K (and keeps the linker happy).
# 286 or higher machines can use the /G2 CFLAG option for better performance.
CFLAGS = /A$(MODEL) /Oa /Gs /Gt22 /Zp1 /W0 /I$(INCL)
COSPACE = /Os
COSPEED = /Os # MSC 5.1 seems to be broken, or maybe it's the NetHack code.
# # Either way, setting COSPEED to /Ot wreaked jolly flaming havoc.
#
LFLAGS = /noi /seg:512 /map /st:4096
#
# Available assembler flags:
# /Di386 = Use 386 specific enhancements
# /DNOEMS = Do not use EMS memory
# /DDEBUG = Report memory usage on startup
AFLAGS = /MX
#
###############################################################################
# Use the first line if you are using EXESMURF or the second for EXEMOD.
EXEFLAGS = /max4500 /min4500
# EXEFLAGS = /max 1194 /min 1194
###############################################################################
#
# *****************************************************************************
# ********* Directories (makedefs hardcodes these, don't change them) *********
# *****************************************************************************
#
INCL = ..\include
AUX = ..\auxil
SRC = ..\src
OTHERS = ..\others
OBJ = $(SRC)\o
#
# *****************************************************************************
# ************************ Local Variables ************************************
# *****************************************************************************
#
# The game name
GAME = NetHack
#
# The default make target (so just typing 'make' is useful)
DEFAULT : $(GAME)
#
# The game directory
# make sure GAMEDIR exists!
GAMEDIR = ..
#
# The game filename
GAMEFILE = $(GAMEDIR)\$(GAME).exe
#
# Target environment prefix
TARG = pc
#
# Overlay manager object file.
OVLMGR = ovlmgr.obj
#
# Termcap routines.
TERMCAPS = $(SRC)\termlib.lib
#
###############################################################################
# Switch the following lines if you have a MASM compatible assembler.
# $(OBJ)\$(OVLMGR):
$(OBJ)\$(OVLMGR): ; copy $(OTHERS)\$(OVLMGR) $(OBJ)\$(OVLMGR)
###############################################################################
# If you have yacc and lex programs and make any changes, comment out the
# upper two targets and uncomment the lower two.
do_yacc: yacc_msg
do_lex: lex_msg
# do_yacc: yacc_act
# do_lex: lex_act
###############################################################################
# Optional high-quality BSD random number generation routines (see pcconf.h).
# Set to nothing if not used.
RANDOM = $(OBJ)\random.o
# RANDOM =
###############################################################################
# Optional C library specifier for those with non-standard libraries or
# a multiple-target library setup.
# CLIB = llibcer /nod
CLIB =
###############################################################################
# If TERMLIB is NOT #defined in the source, comment out the lower line and
# uncomment the upper. Don't forget to copy the $(TERMCAPS) file to the
# $(SRC) directory if you have uncommented the lower line.
# TERMLIB =
TERMLIB = $(TERMCAPS)
###############################################################################
#
# nothing below this line should have to be changed
ROOT = $(OBJ)\$(OVLMGR) $(OBJ)\trampoli.o $(OBJ)\main.o $(OBJ)\msdos.o \
$(OBJ)\alloc.o $(OBJ)\random.o $(OBJ)\decl.o $(OBJ)\monst.o \
$(OBJ)\objects.o $(OBJ)\invent.0 $(OBJ)\mkobj.0 $(OBJ)\mkroom.0 \
$(OBJ)\rnd.0 $(OBJ)\termcap.0
# main monster code
OVL01 = $(OBJ)\cmd.0 $(OBJ)\dbridge.0 $(OBJ)\dog.0 $(OBJ)\engrave.0-1 \
$(OBJ)\hack.0 $(OBJ)\mon.0-1 $(OBJ)\mondata.0-1 $(OBJ)\monmove.0-1 \
$(OBJ)\mthrowu.0 $(OBJ)\priest.0 $(OBJ)\shk.0 $(OBJ)\track.0 \
$(OBJ)\trap.0-1 $(OBJ)\were.0
# pet code
OVL02 = $(OBJ)\apply.0 $(OBJ)\dog.1 $(OBJ)\dogmove.o
# advanced monsters
OVL03 = $(OBJ)\demon.o $(OBJ)\mcastu.o
OVL04 = $(OBJ)\priest.1-b
OVL05 = $(OBJ)\shk.1-b
OVL06 = $(OBJ)\were.1-b
OVL07 = $(OBJ)\wizard.1-b
OVL08 = $(OBJ)\worm.o
# main people things: you take your turn
OVL09 = $(OBJ)\allmain.0 $(OBJ)\artifact.0 $(OBJ)\attrib.1 $(OBJ)\cmd.1 \
$(OBJ)\do.1 $(OBJ)\do.3 $(OBJ)\eat.0 $(OBJ)\engrave.2 \
$(OBJ)\getline.0-1 $(OBJ)\hack.1 $(OBJ)\lock.0 $(OBJ)\mail.0 \
$(OBJ)\pickup.1 $(OBJ)\pri.1 $(OBJ)\prisym.1 $(OBJ)\sounds.0 \
$(OBJ)\timeout.0 $(OBJ)\track.1 $(OBJ)\vault.0 $(OBJ)\wizard.0
OVL10 = $(OBJ)\attrib.0
OVL11 = $(OBJ)\attrib.2-b $(OBJ)\exper.o
OVL12 = $(OBJ)\artifact.2 $(OBJ)\eat.1 $(OBJ)\invent.1
OVL13 = $(OBJ)\makemon.0-2 $(OBJ)\mkobj.1
OVL14 = $(OBJ)\makemon.b
OVL15 = $(OBJ)\mkobj.2-b
OVL16 = $(OBJ)\hack.2
OVL17 = $(OBJ)\mhitm.1-b
OVL18 = $(OBJ)\mthrowu.1
OVL19 = $(OBJ)\mthrowu.2-b
OVL20 = $(OBJ)\allmain.1 $(OBJ)\mhitm.0 $(OBJ)\mhitu.0-1 $(OBJ)\rnd.1 \
$(OBJ)\weapon.0-1
OVL21 = $(OBJ)\mon.2-b $(OBJ)\trap.2
OVL22 = $(OBJ)\artifact.1 $(OBJ)\search.0 $(OBJ)\uhitm.o $(OBJ)\weapon.2-b
OVL23 = $(OBJ)\do_wear.0-1 $(OBJ)\mhitu.2-b
OVL24 = $(OBJ)\steal.0-1
OVL25 = $(OBJ)\monmove.2-b $(OBJ)\steal.2-b
OVL26 = $(OBJ)\rnd.2-b
OVL27 = $(OBJ)\do_wear.2 $(OBJ)\getline.b $(OBJ)\mondata.2 $(OBJ)\objnam.0-1 \
$(OBJ)\pager.0 $(OBJ)\polyself.0-1
OVL28 = $(OBJ)\do_name.0
OVL29 = $(OBJ)\objnam.2-b
OVL30 = $(OBJ)\pager.1-b
OVL31 = $(OBJ)\pri.0 $(OBJ)\prisym.0 $(OBJ)\topl.0
OVL32 = $(OBJ)\pri.b $(OBJ)\topl.1-2
OVL33 = $(OBJ)\prisym.2
OVL34 = $(OBJ)\prisym.b
OVL35 = $(OBJ)\topl.b
OVL36 = $(OBJ)\termcap.1 $(OBJ)\unix.0
OVL37 = $(OBJ)\termcap.2-b
OVL38 = $(OBJ)\dog.b $(OBJ)\sounds.1-b
OVL39 = $(OBJ)\read.0
OVL40 = $(OBJ)\invent.b
OVL41 = $(OBJ)\hack.b
OVL42 = $(OBJ)\mondata.b $(OBJ)\timeout.1-b
OVL43 = $(OBJ)\do.0 $(OBJ)\invent.3
OVL44 = $(OBJ)\cmd.2-b $(OBJ)\getline.2 $(OBJ)\write.o
OVL45 = $(OBJ)\apply.2-b
OVL46 = $(OBJ)\do.b
OVL47 = $(OBJ)\dokick.o
OVL48 = $(OBJ)\dothrow.o
OVL49 = $(OBJ)\eat.2-b
OVL50 = $(OBJ)\invent.2 $(OBJ)\pickup.0 $(OBJ)\pickup.2-b
OVL51 = $(OBJ)\lock.1-b
OVL52 = $(OBJ)\polyself.2-b
OVL53 = $(OBJ)\potion.o
OVL54 = $(OBJ)\pray.o
OVL55 = $(OBJ)\read.1-b $(OBJ)\spell.o
OVL56 = $(OBJ)\search.1-b
# clothing stuff
OVL57 = $(OBJ)\do_wear.b $(OBJ)\wield.o $(OBJ)\worn.o
# Zappage
OVL58 = $(OBJ)\pri.2 $(OBJ)\zap.o
OVL59 = $(OBJ)\dbridge.1-b
OVL60 = $(OBJ)\trap.b
# Unusual circumstances
OVL61 = $(OBJ)\artifact.b $(OBJ)\do_name.1-b $(OBJ)\fountain.o $(OBJ)\music.o \
$(OBJ)\rumors.o $(OBJ)\shknam.0 $(OBJ)\sit.o $(OBJ)\vault.1-b
# Uppers and Downers
# Note: version.o is in OVL62, but in a special way. See below.
OVL62 = $(OBJ)\allmain.2-b $(OBJ)\end.o $(OBJ)\engrave.b $(OBJ)\mail.1-b \
$(OBJ)\o_init.o $(OBJ)\options.o $(OBJ)\restore.o $(OBJ)\rip.o \
$(OBJ)\save.o $(OBJ)\shknam.1-b $(OBJ)\topten.o $(OBJ)\tty.o \
$(OBJ)\u_init.o $(OBJ)\unix.1-b
# Levelling
OVL63 = $(OBJ)\apply.1 $(OBJ)\bones.o $(OBJ)\do.2 $(OBJ)\dog.2 \
$(OBJ)\extralev.o $(OBJ)\mklev.o $(OBJ)\mkmaze.o $(OBJ)\mkroom.1-b \
$(OBJ)\sp_lev.o $(OBJ)\track.2-b
# *****************************************************************************
# ************************* Make Objects **************************************
# *****************************************************************************
MOBJ = $(OVL01) $(OVL02) $(OVL03) $(OVL04) $(OVL05) $(OVL06) $(OVL07) $(OVL08)\
$(OVL09) $(OVL10) $(OVL11) $(OVL12) $(OVL13) $(OVL14) $(OVL15) $(OVL16)\
$(OVL17) $(OVL18) $(OVL19) $(OVL20) $(OVL21) $(OVL22) $(OVL23) $(OVL24)\
$(OVL25) $(OVL26) $(OVL27) $(OVL28) $(OVL29) $(OVL30) $(OVL31) $(OVL32)\
$(OVL33) $(OVL34) $(OVL35) $(OVL36) $(OVL37) $(OVL38) $(OVL39) $(OVL40)\
$(OVL41) $(OVL42) $(OVL43) $(OVL44) $(OVL45) $(OVL46) $(OVL47) $(OVL48)\
$(OVL49) $(OVL50) $(OVL51) $(OVL52) $(OVL53) $(OVL54) $(OVL55) $(OVL56)\
$(OVL57) $(OVL58) $(OVL59) $(OVL60) $(OVL61) $(OVL62) $(OVL63)
VOBJ = $(ROOT) $(MOBJ)
HOBJ = $(VOBJ) $(OBJ)\version.o
# object files for makedefs
MAKEOBJS = $(OBJ)\makedefs.o $(OBJ)\alloc.o $(OBJ)\monst.o \
$(OBJ)\objects.o $(OBJ)\panic.o
OVERLAYS = ($(OVL01)) ($(OVL02)) ($(OVL03)) ($(OVL04)) ($(OVL05)) ($(OVL06)) \
($(OVL07)) ($(OVL08)) ($(OVL09)) ($(OVL10)) ($(OVL11)) ($(OVL12)) \
($(OVL13)) ($(OVL14)) ($(OVL15)) ($(OVL16)) ($(OVL17)) ($(OVL18)) \
($(OVL19)) ($(OVL20)) ($(OVL21)) ($(OVL22)) ($(OVL23)) ($(OVL24)) \
($(OVL25)) ($(OVL26)) ($(OVL27)) ($(OVL28)) ($(OVL29)) ($(OVL30)) \
($(OVL31)) ($(OVL32)) ($(OVL33)) ($(OVL34)) ($(OVL35)) ($(OVL36)) \
($(OVL37)) ($(OVL38)) ($(OVL39)) ($(OVL40)) ($(OVL41)) ($(OVL42)) \
($(OVL43)) ($(OVL44)) ($(OVL45)) ($(OVL46)) ($(OVL47)) ($(OVL48)) \
($(OVL49)) ($(OVL50)) ($(OVL51)) ($(OVL52)) ($(OVL53)) ($(OVL54)) \
($(OVL55)) ($(OVL56)) ($(OVL57)) ($(OVL58)) ($(OVL59)) ($(OVL60)) \
($(OVL61)) ($(OVL62) $(OBJ)\version.o) ($(OVL63))
# object files for special levels compiler
SPLEVOBJS = $(OBJ)\lev_comp.o $(OBJ)\lev_lex.o $(OBJ)\lev_main.o \
$(OBJ)\alloc.o $(OBJ)\monst.o $(OBJ)\objects.o \
$(OBJ)\panic.o
# *****************************************************************************
# ************************** Header Objects ***********************************
# *****************************************************************************
PCCONF_H = $(INCL)\$(TARG)conf.h $(INCL)\msdos.h $(INCL)\system.h
GLOBAL_H = $(PCCONF_H) $(INCL)\coord.h $(INCL)\global.h
CONFIG_H = $(GLOBAL_H) $(INCL)\config.h $(INCL)\tradstdc.h
PERMONST_H = $(INCL)\permonst.h $(INCL)\monattk.h $(INCL)\monflag.h
YOUPROP_H = $(PERMONST_H) $(INCL)\prop.h $(INCL)\mondata.h \
$(INCL)\pm.h $(INCL)\youprop.h
YOU_H = $(YOUPROP_H) $(INCL)\attrib.h $(INCL)\monst.h \
$(INCL)\you.h
DECL_H = $(YOU_H) $(INCL)\decl.h $(INCL)\obj.h \
$(INCL)\onames.h $(INCL)\spell.h $(INCL)\color.h
HACK_H = $(CONFIG_H) $(DECL_H) $(INCL)\trap.h \
$(INCL)\flag.h $(INCL)\gold.h $(INCL)\mkroom.h \
$(INCL)\monsym.h $(INCL)\objclass.h $(INCL)\rm.h \
$(INCL)\trampoli.h $(INCL)\hack.h
# *****************************************************************************
# ************************ File Dependencies **********************************
# *****************************************************************************
# Due to an NDMake inadequacy these must accord with a topological sort of the
# generated-from relation... output on the left, input on the right. Trust me.
.SUFFIXES: .exe .0 .0-1 .0-2 .0-3 .1 .1-2 .1-3 .1-b .2 .2-3 .2-b .3 .3-b .b \
.o .c .y .l .obj .asm
.c.o:
$(CC) $(CFLAGS) $(COSPACE) /Fo$(OBJ)\$*.o $*.c
.c.0:
$(CC) $(CFLAGS) $(COSPEED) /DOVL0 /NT$*.0 /Fo$(OBJ)\$*.0 $*.c
.c.0-1:
$(CC) $(CFLAGS) $(COSPEED) /DOVL0 /DOVL1 /NT$*.0-1 /Fo$(OBJ)\$*.0-1 $*.c
.c.0-2:
$(CC) $(CFLAGS) $(COSPACE) /DOVL0 /DOVL1 /DOVL2 /NT$*.0-2 /Fo$(OBJ)\$*.0-2 $*.c
.c.0-3:
$(CC) $(CFLAGS) $(COSPACE) /DOVL0 /DOVL1 /DOVL2 /DOVL3 /NT$*.0-3 /Fo$(OBJ)\$*.0-3 $*.c
.c.1:
$(CC) $(CFLAGS) $(COSPACE) /DOVL1 /NT$*.1 /Fo$(OBJ)\$*.1 $*.c
.c.1-2:
$(CC) $(CFLAGS) $(COSPACE) /DOVL1 /DOVL2 /NT$*.1-2 /Fo$(OBJ)\$*.1-2 $*.c
.c.1-3:
$(CC) $(CFLAGS) $(COSPACE) /DOVL1 /DOVL2 /DOVL3 /NT$*.1-3 /Fo$(OBJ)\$*.1-3 $*.c
.c.1-b:
$(CC) $(CFLAGS) $(COSPACE) /DOVL1 /DOVL2 /DOVL3 /DOVLB /NT$*.1-b /Fo$(OBJ)\$*.1-b $*.c
.c.2:
$(CC) $(CFLAGS) $(COSPACE) /DOVL2 /NT$*.2 /Fo$(OBJ)\$*.2 $*.c
.c.2-3:
$(CC) $(CFLAGS) $(COSPACE) /DOVL2 /DOVL3 /NT$*.2-3 /Fo$(OBJ)\$*.2-3 $*.c
.c.2-b:
$(CC) $(CFLAGS) $(COSPACE) /DOVL2 /DOVL3 /DOVLB /NT$*.2-b /Fo$(OBJ)\$*.2-b $*.c
.c.3:
$(CC) $(CFLAGS) $(COSPACE) /DOVL3 /NT$*.3 /Fo$(OBJ)\$*.3 $*.c
.c.3-b:
$(CC) $(CFLAGS) $(COSPACE) /DOVL3 /DOVLB /NT$*.3-b /Fo$(OBJ)\$*.3-b $*.c
.c.b:
$(CC) $(CFLAGS) $(COSPACE) /DOVLB /NT$*.b /Fo$(OBJ)\$*.b $*.c
.asm.obj:
$(ASM) $(AFLAGS) $*.asm,$(OBJ)\$*.obj ;
$(GAME): $(GAMEFILE)
$(GAME).exe: $(GAMEFILE)
$(GAMEFILE): $(OBJ) $(HOBJ)
@echo Loading....
$(LINK) $(ROOT) $(OVERLAYS),$(GAMEFILE),$(GAME),$(CLIB) $(TERMLIB) $(LFLAGS) ;
$(EXEPATCH) $(GAMEFILE) $(EXEFLAGS)
@echo NetHack is up to date.
$(OBJ):
if not exist .\$(OBJ)\*.* mkdir $(OBJ)
# The following 3 modules vary depending on what OS you are using.
$(OBJ)\main.o: $(HACK_H) $(TARG)main.c
$(CC) $(CFLAGS) $(COSPACE) /Fo.\$(OBJ)\main.o $(TARG)main.c
$(OBJ)\tty.o: $(HACK_H) $(INCL)\func_tab.h $(TARG)tty.c
$(CC) $(CFLAGS) $(COSPACE) /Fo.\$(OBJ)\tty.o $(TARG)tty.c
$(OBJ)\unix.0: $(HACK_H) $(TARG)unix.c
$(CC) $(CFLAGS) $(COSPEED) /DOVL0 /Fo.\$(OBJ)\unix.0 $(TARG)unix.c
$(OBJ)\unix.1-b: $(HACK_H) $(TARG)unix.c
$(CC) $(CFLAGS) $(COSPACE) /DOVL1 /DOVL2 /DOVL3 /DOVLB /Fo.\$(OBJ)\unix.1-b $(TARG)unix.c
$(OBJ)\makedefs.o: $(INCL)\config.h $(INCL)\permonst.h $(INCL)\objclass.h
makedefs.exe: $(MAKEOBJS)
$(LINK) $(LFLAGS) $(MAKEOBJS), makedefs.exe,, $(CLIB);
# Targets for the special levels compiler
lev_comp.c: lev_comp.y
$(MAKEBIN) do_yacc
lev_lex.c: lev_comp.l
$(MAKEBIN) do_lex
yacc_msg:
@echo lev_comp.y has changed. To update lev_comp.c and lev_comp.h run YACC.
yacc_act:
$(YACC) -d lev_comp.y
copy $(YTABC) lev_comp.c
copy $(YTABH) $(INCL)\lev_comp.h
del $(YTABC)
del $(YTABH)
lex_msg:
@echo lev_comp.l has changed. To update lev_lex.c run LEX.
lex_act:
$(LEX) lev_comp.l
copy $(LEXYYC) lev_lex.c
del $(LEXYYC)
# This is stupid but since the default rule does not work here ...
$(OBJ)\lev_comp.o: $(HACK_H) $(INCL)\sp_lev.h lev_comp.c
$(CC) $(CFLAGS) /Fo$(OBJ)\$*.o $*.c
$(OBJ)\lev_lex.o: $(HACK_H) $(INCL)\sp_lev.h $(INCL)\lev_comp.h \
lev_lex.c
$(CC) $(CFLAGS) /Fo$(OBJ)\$*.o $*.c
lev_comp.exe: $(SPLEVOBJS)
$(LINK) $(LFLAGS) $(SPLEVOBJS),lev_comp.exe,, $(CLIB);
# *****************************************************************************
# ************************* Makedefs Stuff ***********************************
# *****************************************************************************
# The following include files depend on makedefs to be created.
# date.h should be remade any time any of the source or include code
# is modified.
$(INCL)\date.h: $(VOBJ) makedefs.exe
.\makedefs -v
$(INCL)\onames.h: makedefs.exe
.\makedefs -o
$(INCL)\pm.h: makedefs.exe
.\makedefs -p
$(INCL)\trap.h: makedefs.exe
.\makedefs -t
data: $(AUX)\data.bas makedefs.exe
.\makedefs -d
rumors: $(AUX)\rumors.tru $(AUX)\rumors.fal makedefs.exe
.\makedefs -r
# *****************************************************************************
# ************************ Secondary targets **********************************
# *****************************************************************************
all: install
install: $(OBJ) lev_comp.exe $(GAMEFILE) auxil.tag install.tag
@echo Don't forget to check HACKDIR in NetHack.cnf.
@echo Done.
install.tag:
copy $(OTHERS)\termcap $(GAMEDIR)
copy $(AUX)\*. $(GAMEDIR)
del $(GAMEDIR)\MacHelp
copy $(OTHERS)\NetHack.cnf $(GAMEDIR)
echo install done > install.tag
spec_lev.tag: lev_comp.exe $(AUX)\castle.des $(AUX)\endgame.des $(AUX)\tower.des
lev_comp $(AUX)\castle.des
lev_comp $(AUX)\endgame.des
lev_comp $(AUX)\tower.des
copy castle $(GAMEDIR)
copy endgame $(GAMEDIR)
copy tower? $(GAMEDIR)
del castle
del endgame
del tower?
echo spec_lev done > spec_lev.tag
auxil.tag: spec_lev.tag data rumors
echo special levels created > auxil.tag
clean:
del $(OBJ)\*.o
del $(OBJ)\*.0
del $(OBJ)\*.0-1
del $(OBJ)\*.0-2
del $(OBJ)\*.0-3
del $(OBJ)\*.1
del $(OBJ)\*.1-2
del $(OBJ)\*.1-3
del $(OBJ)\*.1-b
del $(OBJ)\*.2
del $(OBJ)\*.2-3
del $(OBJ)\*.2-b
del $(OBJ)\*.3
del $(OBJ)\*.3-b
del $(OBJ)\*.b
del $(OBJ)\*.obj
rmdir $(OBJ)
spotless: clean
del $(INCL)\date.h
del $(INCL)\onames.h
del $(INCL)\pm.h
if exist makedefs.exe del makedefs.exe
if exist lev_comp.exe del lev_comp.exe
del castle
del endgame
del tower?
del *.bak
del *.tag
del *.map
del *.obj
del *.lib
del *.txt
del $(AUX)\data
del $(AUX)\rumors
# *****************************************************************************
# ************************* Other dependencies ********************************
# *****************************************************************************
# Other dependencies
#
# I deleted that line. ;-}
$(OBJ)\allmain.0: $(HACK_H)
$(OBJ)\allmain.1: $(HACK_H)
$(OBJ)\allmain.2-b: $(HACK_H)
$(OBJ)\alloc.o: $(CONFIG_H)
$(OBJ)\apply.0: $(HACK_H) $(INCL)\edog.h
$(OBJ)\apply.1: $(HACK_H) $(INCL)\edog.h
$(OBJ)\apply.2-b: $(HACK_H) $(INCL)\edog.h
$(OBJ)\artifact.0: $(HACK_H) $(INCL)\artifact.h
$(OBJ)\artifact.1: $(HACK_H) $(INCL)\artifact.h
$(OBJ)\artifact.2: $(HACK_H) $(INCL)\artifact.h
$(OBJ)\artifact.b: $(HACK_H) $(INCL)\artifact.h
$(OBJ)\attrib.0: $(HACK_H)
$(OBJ)\attrib.1: $(HACK_H)
$(OBJ)\attrib.2-b: $(HACK_H)
$(OBJ)\bones.o: $(HACK_H)
$(OBJ)\cmd.0: $(HACK_H) $(INCL)\func_tab.h
$(OBJ)\cmd.1: $(HACK_H) $(INCL)\func_tab.h
$(OBJ)\cmd.2-b: $(HACK_H) $(INCL)\func_tab.h
$(OBJ)\dbridge.0: $(HACK_H)
$(OBJ)\dbridge.1-b: $(HACK_H)
$(OBJ)\decl.o: $(HACK_H)
$(OBJ)\demon.o: $(HACK_H)
$(OBJ)\do.0: $(HACK_H)
$(OBJ)\do.1: $(HACK_H)
$(OBJ)\do.2: $(HACK_H)
$(OBJ)\do.3: $(HACK_H)
$(OBJ)\do.b: $(HACK_H)
$(OBJ)\do_name.0: $(HACK_H)
$(OBJ)\do_name.1-b: $(HACK_H)
$(OBJ)\do_wear.0-1: $(HACK_H)
$(OBJ)\do_wear.2: $(HACK_H)
$(OBJ)\do_wear.b: $(HACK_H)
$(OBJ)\dog.0: $(HACK_H) $(INCL)\edog.h
$(OBJ)\dog.1: $(HACK_H) $(INCL)\edog.h
$(OBJ)\dog.2: $(HACK_H) $(INCL)\edog.h
$(OBJ)\dog.b: $(HACK_H) $(INCL)\edog.h
$(OBJ)\dogmove.o: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
$(OBJ)\dokick.o: $(HACK_H) $(INCL)\eshk.h
$(OBJ)\dothrow.o: $(HACK_H)
$(OBJ)\eat.0: $(HACK_H)
$(OBJ)\eat.1: $(HACK_H)
$(OBJ)\eat.2-b: $(HACK_H)
$(OBJ)\end.o: $(HACK_H) $(INCL)\eshk.h
$(OBJ)\engrave.0-1: $(HACK_H)
$(OBJ)\engrave.2: $(HACK_H)
$(OBJ)\engrave.b: $(HACK_H)
$(OBJ)\exper.o: $(HACK_H)
$(OBJ)\extralev.o: $(HACK_H)
$(OBJ)\fountain.o: $(HACK_H)
$(OBJ)\getline.0-1: $(HACK_H) $(INCL)\func_tab.h
$(OBJ)\getline.2: $(HACK_H) $(INCL)\func_tab.h
$(OBJ)\getline.b: $(HACK_H) $(INCL)\func_tab.h
$(OBJ)\hack.0: $(HACK_H)
$(OBJ)\hack.1: $(HACK_H)
$(OBJ)\hack.2: $(HACK_H)
$(OBJ)\hack.b: $(HACK_H)
$(OBJ)\invent.0: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
$(OBJ)\invent.1: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
$(OBJ)\invent.2: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
$(OBJ)\invent.3: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
$(OBJ)\invent.b: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
$(OBJ)\ioctl.o: $(HACK_H)
$(OBJ)\lev_main.o: $(HACK_H) $(INCL)\sp_lev.h
$(OBJ)\lock.0: $(HACK_H)
$(OBJ)\lock.1-b: $(HACK_H)
$(OBJ)\mail.0: $(HACK_H)
$(OBJ)\mail.1-b: $(HACK_H)
$(OBJ)\makemon.0-2: $(HACK_H)
$(OBJ)\makemon.b: $(HACK_H)
$(OBJ)\mcastu.o: $(HACK_H)
$(OBJ)\mhitm.0: $(HACK_H) $(INCL)\artifact.h
$(OBJ)\mhitm.1-b: $(HACK_H) $(INCL)\artifact.h
$(OBJ)\mhitu.0-1: $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
$(OBJ)\mhitu.2-b: $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
$(OBJ)\mklev.o: $(HACK_H)
$(OBJ)\mkmaze.o: $(HACK_H)
$(OBJ)\mkobj.0: $(HACK_H)
$(OBJ)\mkobj.1: $(HACK_H)
$(OBJ)\mkobj.2-b: $(HACK_H)
$(OBJ)\mkroom.0: $(HACK_H)
$(OBJ)\mkroom.1-b: $(HACK_H)
$(OBJ)\mon.0-1: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\wseg.h
$(OBJ)\mon.2-b: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\wseg.h
$(OBJ)\mondata.0-1: $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h
$(OBJ)\mondata.2: $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h
$(OBJ)\mondata.b: $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h
$(OBJ)\monmove.0-1: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
$(OBJ)\monmove.2-b: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
$(OBJ)\monst.o: $(CONFIG_H) $(PERMONST_H) $(INCL)\eshk.h \
$(INCL)\vault.h $(INCL)\epri.h $(INCL)\color.h
$(OBJ)\msdos.o: $(HACK_H)
$(OBJ)\mthrowu.0: $(HACK_H)
$(OBJ)\mthrowu.1: $(HACK_H)
$(OBJ)\mthrowu.2-b: $(HACK_H)
$(OBJ)\music.o: $(HACK_H)
$(OBJ)\o_init.o: $(HACK_H)
$(OBJ)\objects.o: $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
$(INCL)\prop.h $(INCL)\color.h
$(OBJ)\objnam.0-1: $(HACK_H)
$(OBJ)\objnam.2-b: $(HACK_H)
$(OBJ)\options.o: $(HACK_H)
$(OBJ)\pager.0: $(HACK_H)
$(OBJ)\pager.1-b: $(HACK_H)
$(OBJ)\panic.o: $(CONFIG_H)
$(OBJ)\pickup.0: $(HACK_H)
$(OBJ)\pickup.1: $(HACK_H)
$(OBJ)\pickup.2-b: $(HACK_H)
$(OBJ)\polyself.0-1: $(HACK_H)
$(OBJ)\polyself.2-b: $(HACK_H)
$(OBJ)\potion.o: $(HACK_H)
$(OBJ)\pray.o: $(HACK_H)
$(OBJ)\pri.0: $(HACK_H) $(INCL)\epri.h $(INCL)\termcap.h
$(OBJ)\pri.1: $(HACK_H) $(INCL)\epri.h $(INCL)\termcap.h
$(OBJ)\pri.2: $(HACK_H) $(INCL)\epri.h $(INCL)\termcap.h
$(OBJ)\pri.b: $(HACK_H) $(INCL)\epri.h $(INCL)\termcap.h
$(OBJ)\priest.0: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\eshk.h \
$(INCL)\epri.h
$(OBJ)\priest.1-b: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\eshk.h \
$(INCL)\epri.h
$(OBJ)\prisym.0: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
$(OBJ)\prisym.1: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
$(OBJ)\prisym.2: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
$(OBJ)\prisym.b: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
$(OBJ)\random.o:
$(OBJ)\read.0: $(HACK_H)
$(OBJ)\read.1-b: $(HACK_H)
$(OBJ)\restore.o: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
$(OBJ)\rip.o: $(HACK_H)
$(OBJ)\rnd.0: $(HACK_H)
$(OBJ)\rnd.1: $(HACK_H)
$(OBJ)\rnd.2-b: $(HACK_H)
$(OBJ)\rumors.o: $(HACK_H)
$(OBJ)\save.o: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h
$(OBJ)\search.0: $(HACK_H) $(INCL)\artifact.h
$(OBJ)\search.1-b: $(HACK_H) $(INCL)\artifact.h
$(OBJ)\shk.0: $(HACK_H) $(INCL)\eshk.h
$(OBJ)\shk.1-b: $(HACK_H) $(INCL)\eshk.h
$(OBJ)\shknam.0: $(HACK_H) $(INCL)\eshk.h
$(OBJ)\shknam.1-b: $(HACK_H) $(INCL)\eshk.h
$(OBJ)\sit.o: $(HACK_H)
$(OBJ)\sounds.0: $(HACK_H) $(INCL)\edog.h $(INCL)\eshk.h
$(OBJ)\sounds.1-b: $(HACK_H) $(INCL)\edog.h $(INCL)\eshk.h
$(OBJ)\sp_lev.o: $(HACK_H) $(INCL)\sp_lev.h
$(OBJ)\spell.o: $(HACK_H)
$(OBJ)\steal.0-1: $(HACK_H)
$(OBJ)\steal.2-b: $(HACK_H)
$(OBJ)\termcap.0: $(HACK_H) $(INCL)\termcap.h
$(OBJ)\termcap.1: $(HACK_H) $(INCL)\termcap.h
$(OBJ)\termcap.2-b: $(HACK_H) $(INCL)\termcap.h
$(OBJ)\timeout.0: $(HACK_H)
$(OBJ)\timeout.1-b: $(HACK_H)
$(OBJ)\topl.0: $(HACK_H)
$(OBJ)\topl.1-2: $(HACK_H)
$(OBJ)\topl.b: $(HACK_H)
$(OBJ)\topten.o: $(HACK_H)
$(OBJ)\track.0: $(HACK_H)
$(OBJ)\track.1: $(HACK_H)
$(OBJ)\track.2-b: $(HACK_H)
$(OBJ)\trampoli.o: $(HACK_H)
$(OBJ)\trap.0-1: $(HACK_H) $(INCL)\edog.h
$(OBJ)\trap.2: $(HACK_H) $(INCL)\edog.h
$(OBJ)\trap.b: $(HACK_H) $(INCL)\edog.h
$(OBJ)\u_init.o: $(HACK_H)
$(OBJ)\uhitm.o: $(HACK_H) $(INCL)\artifact.h
$(OBJ)\vault.0: $(HACK_H) $(INCL)\vault.h
$(OBJ)\vault.1-b: $(HACK_H) $(INCL)\vault.h
$(OBJ)\version.o: $(HACK_H) $(INCL)\date.h $(INCL)\patchlev.h
$(OBJ)\weapon.0-1: $(HACK_H)
$(OBJ)\weapon.2-b: $(HACK_H)
$(OBJ)\were.0: $(HACK_H)
$(OBJ)\were.1-b: $(HACK_H)
$(OBJ)\wield.o: $(HACK_H)
$(OBJ)\wizard.0: $(HACK_H)
$(OBJ)\wizard.1-b: $(HACK_H)
$(OBJ)\worm.o: $(HACK_H) $(INCL)\wseg.h
$(OBJ)\worn.o: $(HACK_H)
$(OBJ)\write.o: $(HACK_H)
$(OBJ)\zap.o: $(HACK_H)